今天來講一下要怎麼把昨天說到的內容實作到之前的專案中。
首先先打開main.go,在裡面把路徑加上去
package main
import (
...
)
// @title Swagger Example API
// @version 1.0
// @description This is a sample server celler server.
// @termsOfService http://swagger.io/terms/
...
func main() {
r := gin.Default()
c := controller.NewController()
v1 := r.Group("/api/v1")
{
...
googleCalendar := v1.Group("/googleCalendar")
{
googleCalendar.GET("/getEventList", c.GetGoogleCalendarEventList)
}
...
}
}
這邊我加上的group是googleCalendar,並且用GET取得/getEventList
這個路徑,後面用的是GetGoogleCalendarEventList
這個function
再來就是要設定這個controller的內容
這邊先把code貼上來
package controller
import (
"log"
"github.com/gin-gonic/gin"
"google.golang.org/api/calendar/v3"
"google.golang.org/api/option"
)
// GetGoogleCalendarEventList godoc
//
// @Summary Get Google Calendar Event List
// @Description Get Google Calendar Event List
// @Tags googleCalendar
// @Accept json
// @Produce json
// @Success 200 {array} string "success"
// @Failure 400 {string} string "fail"
// @Router /api/v1/googleCalendar/getEventList [get]
func (c *Controller) GetGoogleCalendarEventList(ctx *gin.Context) {
calendarService, err := calendar.NewService(ctx, option.WithAPIKey("[secret key]"))
if err != nil {
panic(err)
}
eventList, err := calendarService.Events.List("[calendar id]").Do()
if err != nil {
panic(err)
}
for _, item := range eventList.Items {
log.Println(item.Summary)
}
}
首先跟前幾天一樣,先設定godoc的內容,把上面的commit打上去
主要就是要設定Router,這邊要設定的跟前面main.go裡面的內容一樣
再來寫下面的function
先用昨天的方法通過google calendar的認證,然後用Event.List
取得該calendar id的內容
最後用一個for迴圈印出eventList
的內容
用eventList.Items
,取得eventList
中的內容,然後印出Summary
就會拿到設定的google calendar的event內容了
接下來會開始花幾天的時間把google calendar跟Notion API進行串接,這邊就陸續紀錄串接的過程。